from PyQt5.QtCore import QCoreApplication
from PyQt5.QtWidgets import QVBoxLayout, QMessageBox
from PyQt5.uic.properties import QtGui


def ok_button_click(window):
    self = window.ui
    print("按钮ok_button_click点击事件")
    print(self)
    current_user = str(self.user_name.text())
    print(current_user)
    passwd_word = str(self.pass_word.text())
    print(passwd_word)
    passwd_check = False
    username_check = False
    if not current_user.endswith("@163.com"):
        print("请检查输入的用户名格式")
        QMessageBox.information(window, 'Error', u'请检查输入的用户名格式，需要以"@163.com"结尾', QMessageBox.Ok)
    else:
        username_check = True
    if passwd_word != '123456' and username_check:
        print("您输入的密码有误")
        QMessageBox.information(window, 'Error', u'您输入的密码有误 ！！!', QMessageBox.Ok)
    else:
        passwd_check = True
    if username_check and passwd_check:
        self.accept()
def cancel_button_click(window):
    self = window.ui
    print("按钮cancel_button_click点击事件")
    QCoreApplication.instance().quit()

def function_1(window):
    # 按钮1点击事件
    print("按钮1点击事件")
    window.ui.lineEdit.setText("2024")
    # 执行该函数时，会将名称为lineEdit的控件文本内容设置为2024


def function_2(window):
    # 按钮2点击事件
    print("按钮2点击事件")
    a = window.ui.lineEdit.text()  # 获取lineEdit的文本内容
    print("按钮2点击事件:" + a)
    a = int(a)  # 由于获取的lineEdit的文本内容是字符串，所以要转换为整数
    if a == 2024:
        window.ui.textEdit.setText("Hello World")
        # 如果lineEdit的文本内容为2024，则将textEdit的文本内容设置为Hello World

        window.ui.textEdit.append("今年是：")
        # 在textEdit中追加文本，会在下一行显示
        window.ui.textEdit.append(f"{a}年")
        # 在textEdit中追加文本，会在下一行显示，由于a是整数，所以要转换为字符串


from matplotlib.figure import Figure
# 用来创建图形，相当于画布
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
# 用来将matplotlib的图形嵌入到PyQt5的窗口中
import matplotlib.pyplot as plt


# 一般用来绘图，这里用来调整中文字体，因为已经有了画图的FigureCanvas

def function_3(window):
    # 按钮3点击事件
    print("按钮3点击事件")
    # 创建 FigureCanvas 并嵌入到 QWidget 中
    figure = Figure()
    canvas = FigureCanvas(figure)
    layout = QVBoxLayout(window.ui.widget)
    # 我的绘图窗口名称叫widget，所以这里是self.widget。
    # QVBoxLayout是垂直布局，布局管理器用于管理widget中的控件，这里是FigureCanvas
    layout.addWidget(canvas)  # 将FigureCanvas添加到布局管理器中

    # 设置 matplotlib 使用的字体
    plt.rcParams['font.sans-serif'] = ['SimSun', 'Microsoft YaHei']  # 使用宋体和微软雅黑
    plt.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题

    # 绘制折线图
    x = [1, 2, 3, 4, 5]
    y = [1, 4, 9, 16, 25]
    ax = figure.add_subplot(111)
    ax.plot(x, y, marker='o')
    ax.set_title("样例图")
    ax.set_xlabel("X轴")
    ax.set_ylabel("Y轴")
    ax.grid(True)
    canvas.draw()
